查看原文
其他

看了都说好:浅谈前后端分工协作

点击上方 "程序员小乐" ,关注公众号

8点20分,第一时间与你相约

每日英文 

If you're brave enough to say GOODBYE, life will reward you with a new HELLO. 

只要你勇敢地说出再见,生活一定会赐予你一个新的开始。

小乐有话说 

生活即修禅。定力不坚,心随神移的凡夫俗子,被花红柳绿、光怪陆离的尘世迷了眼,分了心,因此,只能成为米饭,甚至是半生不熟的夹生饭。


来自:stars甜 ,链接:jianshu.com/p/6bfd5ceabeaa

责编:乐乐 | 封面来自网络



01 前后端分离的基本概念 



前端后端交互,基本上是基于http+json的形式。后端专注于提供数据,更重要职责是维护系统架构的稳定,保证数据的安全。前端人员专注于交互,快速响应UI的变化。


双方交互基于http+json接口,后端人员基本只对接口负责,无需负责js和html的代码。前端人员只对界面展示交互负责,对于后端http接口如何提供正确的数据无需负责。


前后端分离的主要概念就是:后台只需提供API接口,前端调用AJAX实现数据呈现。



02 前后端分离的意义 



1:彻底解放前端,前端不再需要向后台提供模板或是后台在前端html中嵌入后台代码


2:提高工作效率,分工更加明确,前后端分离的工作流程可以使前端只关注前端的事,后台只关心后台的活,两者开发可以同时进行,在后台还没有时间提供接口的时候,前端可以先将数据写死或者调用本地的json文件即可,页面的增加和路由的修改也不必再去麻烦后台,开发更加灵活。


3:局部性能提升,通过前端路由的配置,我们可以实现页面的按需加载,无需一开始加载首页便加载网站的所有的资源,服务器也不再需要解析前端页面,在页面交互及用户体验上有所提升。


4:降低维护成本,通过目前主流的前端MVC框架,我们可以非常快速的定位及发现问题的所在,客户端的问题不再需要后台人员参与及调试,代码重构及可维护性增强。


5、有利于产品的组件化,由于前后端分离,有利于迅速二次开发推出新产品。


6、减少后端新人上手项目的难度,提高产品的可维护性和可拓展性。


7、基于原有后端接口,有利于后期在安卓,ios,微信等其他不同平台进行产品二次开发。


03 实现分离的基本合作思路 



1、评审阶段产品经理与前后端进行需求评审,各自理解清楚自己的业务量以及联调的工作量,评估开发时间。


2、开发准备阶段前后端一起商量需求中需要联调的部分,进行接口的口头协议交流。


3、接口定义阶段前后端一方中,前后端中的一方根据之前的口头协议拟定出一份详细的接口,并编写服务接口定义,完成后由另一方确认。有疑问的地方重新商量直至双方都没有问题。


4、开发阶段双方根据协商出来的接口为基础进行开发,如在开发过程中发现需要新增或删除一些字段,重复步骤3。


(注意:前端在开发过程中记得跟进接口,mock数据进行本地测试,后端修改接口需要跟前端协商清楚再改。 )


5、联调阶段双方独自的工作完成,开始前后端联调,如在联调过程发现有疑问,重复步骤3,直至联调完成。


6、提测阶段将完成的需求提给测试人员,让其对该需求进行测试,如发现问题,及时通知开发并让其修改,直至需求没有bug。


7、发布阶段前后端双方在保证步骤1-5都没有问题了,进行各自的代码发布,完成后由测试人员在线上进行相应的测试,如果有bug,重复步骤6和7,直至成功上线。



04  相关问题及解决建议 



1、前后端分离会带来前后端沟通成本的问题,相比不分离,能减少开发的总时间吗?


能减少开发的总时间,理由如下:


(1)、基于对接口负责的原则,前后端分离后,只需做好各种熟悉领域的事情。

后端专注于提供数据,更重要职责是维护系统架构的稳定,保证数据的安全。

前端人员专注于交互,快速响应UI的变化。


(2)、前后端分离确实会带来沟通成本的问题,这方面需要前后端遵守合作流程,适应新的合作模式,可以提高沟通效率。总体而言,利大于弊。


2、接口定义阶段,接口谁定?


回答:建议后端开发人员定,需要前端人员评审。


3、联调阶段,前端是基于后端的开发人员的机器联调,还是基于后端一个开发公共环境联调?


回答:前端应该基于后端的一个公共开发环境联调,理由如下:


(1)、开发过程中,后端开发人员机器环境不稳定,后端人员在调速中会时不时进行断点调试,重启机器的服务器。


(2)、公共开发环境由开发人员负责更新程序,并需要在更新程序前把代码提交代码仓库,这样有利于前端有一个实时更新,稳定的调试环境。


前后端分离的核心:后台提供数据,前端负责显示。


热文推荐主宰这个世界的10大算法程序员如何更精确评估开发时间?荐阅读

阿里、腾讯、百度、华为、京东最新面试题汇集

从程序员到技术管理,这半年我经历了什么!

本该生二胎的年纪,却选择漂泊

分析996工作制如何引爆社会舆情

这里有你需要的编程技术、心得、经验(数据结构与算法、源码分析等),这里不止限于技术!还有职场心得、生活感悟、以及面经等。关注公众号,第一时间送达!


看完本文有收获?请转发分享给更多人
关注「程序员小乐」,收看更多精彩内容

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存